#include "pch.hpp"
#include "Script.hpp"

using namespace Engine;
using namespace Engine::Edit;




Script::Script(QString name)
	: ProjectItem(name)
{}
///////////////////////////////////////////////////////////////////////////////////////////////////

Script::Script(ProjectItem::weak_ptr parent, QString name)
	: ProjectItem(parent, name)
{}
///////////////////////////////////////////////////////////////////////////////////////////////////




ProjectItem::Type Script::type() const
{
	return ScriptType;
}
///////////////////////////////////////////////////////////////////////////////////////////////////

QString Script::content() const
{
	return m_content;
}
///////////////////////////////////////////////////////////////////////////////////////////////////

void Script::setContent(QString content)
{
	m_content = content;
}
///////////////////////////////////////////////////////////////////////////////////////////////////




void Script::load(AbstractDomInputStream& stream)
{
	stream.openElement("script");
	verify(stream.hasAttribute("name"));
	setName(stream.attribute("name"));

	stream.openElement("content");
	m_content = stream.readText();
	stream.closeElement("content");

	stream.closeElement("script");
}
///////////////////////////////////////////////////////////////////////////////////////////////////

void Script::save(AbstractDomOutputStream& stream) const
{
	stream.openElement("script");
	stream.writeAttribute("name", name());
	stream.openElement("content");
	stream.writeCDataSection(m_content);
	stream.closeElement();
	stream.closeElement();
}
///////////////////////////////////////////////////////////////////////////////////////////////////
